#ifndef CONTROLLER_H
#define CONTROLLER_H
#include <SFML/Window.hpp>
#include <cstdint>
#include <vector>
#include "pch.h"

PNE_NAMESPACE_BEGIN

using Byte = std::uint8_t;
struct Controller
{
    Controller();
    enum class Buttons
    {
        A,
        B,
        Select,
        Start,
        Up,
        Down,
        Left,
        Right,
        TotalButtons,
    };

    void Strobe(Byte b);
    Byte Read();
    void SetKeyBind(const std::vector<sf::Keyboard::Key> &keys);

private:
    bool m_strobe;
    unsigned int m_keyStates;
    std::vector<sf::Keyboard::Key> m_keyBind;
};

PNE_NAMESPACE_END

#endif // CONTROLLER_H
       // DONE, CHECKED